#ifndef DEFINES_INC
#define DEFINES_INC

#include <vector>
#include <cassert>
#include <string>
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

/*-----------------------------------------------------------------------------
 *  Sequencial ou paralelo
 *-----------------------------------------------------------------------------*/
#define SEQUENTIAL  1
#define PARALLEL    2

#define HAS_TO_PRINT(M) (M == SEQUENTIAL || (M == PARALLEL && Manager::getRank() == 0))

/*-----------------------------------------------------------------------------
 *  Defines de tipos
 *-----------------------------------------------------------------------------*/
typedef unsigned int uint;
typedef unsigned long ulong;
typedef uint* uintArray;
typedef int* intArray;

/*-----------------------------------------------------------------------------
 *  Desreferencia uma variável
 *-----------------------------------------------------------------------------*/
#define REF(A) *(this->A)

#endif /* ----- #ifndef DEFINES_INC  ----- */
